Docker Compose 是一個用於管理多個 Docker 容器的工具,它允許你定義、配置和運行多個容器應用程序,並將它們組合在一個項目中。這使得開發和部署複雜的多容器應用變得更加簡單和可管理。
以下是 Docker Compose 的一些主要特點和概念:
YAML 配置文件: Docker Compose 使用 YAML 文件來定義應用程序的結構和配置。在這個文件中,你可以定義容器映像、容器之間的依賴關係、環境變數、端口映射、掛載卷等信息。
多容器應用: Docker Compose 適用於需要多個相互關聯容器的應用,例如 Web 應用和相關的數據庫,或者微服務架構中的多個服務。
容器互聯: Docker Compose 可以自動創建一個虛擬的網絡,讓容器可以通過服務名稱相互通信,而無需手動設置 IP 地址。
簡化部署: 使用 Docker Compose,你可以將整個應用程序以一個單一命令部署到不同環境中,包括開發、測試和生產環境。
可擴展性: Docker Compose 支持應用程序的擴展,你可以根據需要添加更多的容器服務,並根據需要調整配置。
version: '3'
services:
webapp:
image: spring-test
ports:
- "3030:8080"
database:
image: postgres
environment:
POSTGRES_PASSWORD: password
在這個示例中,我們定義了兩個服務:一個是名為 "webapp" 的 Web 應用容器,另一個是名為 "database" 的 PostgreSQL 數據庫容器。我們指定了映像、端口映射和環境變數等配置。當我們運行 docker-compose up 命令時,Docker Compose 會根據這個配置文件創建和啟動這兩個容器,並確保它們能夠相互通信。
啟動 Docker Compose 項目中定義的所有容器服務。
如果首次運行,它將根據 docker-compose.yml 文件中的定義創建容器。
如果容器已經存在,則重新啟動它們。
可以使用 -d 選項來在後台運行服務。
docker-compose up
停止和刪除 Docker Compose 項目中的所有容器服務。
此命令將清理掉所有相關的容器、網絡和卷。
docker-compose down
列出 Docker Compose 項目中所有服務的狀態,包括它們的容器 ID、名稱、狀態等信息。
docker-compose ps
查看 Docker Compose 項目中所有服務的日誌輸出。
可以使用服務名稱來過濾特定服務的日誌。
docker-compose logs
根據 docker-compose.yml 文件中的定義構建容器服務的映像。
這可以用於手動重建映像,以確保它們是最新的。
docker-compose build